package com.atguigu.gulimall.coupon;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


/*

  1.如何使用nacos作为配置中心统一管理配置
      1.引入依赖
      2.创建一个bootstrap.properties
      配置：
         spring.application.name = gulimall-coupon
         spring.cloud.nacos.config.server-addr = 127.0.0.1:8848
      3.需要给配置中心默认添加一个叫 数据集（data id）gulimall-coupon.properties.默认规则，应用名.properties
      4.给应用名.properties添加任何配置
      5.动态获取配置
        @RefreshScope:动态获取并刷新配置
        @Value(${配置项的名字)
        如果配置中心和当前应用的配置文件都配置了相同的项，优先使用配置中的位置
  2.nacos使用管理配置细节
      1.命名空间：默认为public（保留空间）
            1.开发，测试，生产：利用命名空间来做环境隔离
               注意：在bootstrap.properties；配置上，需要使用那个命名空间下的配置
               spring.cloud.nacos.config.namespace= 2baf414f-1609-4cdc-ade9-d9f8d4dab75e
            2.基于每一个微服务之间互相隔离配置，每一个微服务都创建自己的命名空间，只加载自己命名下的命名空间
      2.配置集
           一组相关或者不相关的配置集合：所有的配置的集合
      3.配置集ID: 类似文件名 DATA ID
      4.配置分组：
          默认分组： DEFAULT_GROUP

      本项目中：每个微服务创建自己的命名空间，使用配置分组区分不同的环境：test，dev,prod

  3.同时加载多个配置集
    1.任何配置文件都可以放在配置中心中
    2.只需要在bootstrap.properties说明加载配置中心哪些配置文件即可
    3.@Value.@configurationProperties...
    以前springboot任何方法从配置文件中获取值，都能使用
    配置中心有的优先使用配置中心中的


* */
@EnableDiscoveryClient()
@SpringBootApplication
public class GulimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }
}
